package DB.dao;

import DB.dto.*;
import DB.exceptions.DoctorHasOperatinsDaoException;

public interface DoctorHasOperationsDao
{
		/**
	 * Inserts a new row in the NURSE_HAS_OPERATINS table.
	 */
	public void insert(DoctorHasOperatins dto) throws DoctorHasOperatinsDaoException;

	/**
	 * Deletes a single row in the NURSE_HAS_OPERATINS table.
	 */
	public void delete(int oper, int doctor) throws DoctorHasOperatinsDaoException;
    public void deleteDoctorsFromOperation(int oper) throws DoctorHasOperatinsDaoException;
        public void deleteOperationsFromDoctor(int nurse) throws DoctorHasOperatinsDaoException;

	public DoctorHasOperatins[] findAll() throws DoctorHasOperatinsDaoException;

	/**
	 * Returns all rows from the NURSE_HAS_OPERATINS table that match the criteria 'ID_NURSE = :idDoctor'.
	 */
    public DoctorHasOperatins[] findByDoctor(int idDoctor) throws DoctorHasOperatinsDaoException;

	/**
	 * Returns all rows from the NURSE_HAS_OPERATINS table that match the criteria 'ID_OPERATION = :idOperation'.
	 */
    public DoctorHasOperatins[] findByOperation(int idOperation) throws DoctorHasOperatinsDaoException;

	public DoctorHasOperatins[] findByDynamicSelect(String sql, Object[] sqlParams) throws DoctorHasOperatinsDaoException;

	/**
	 * Returns all rows from the NURSE_HAS_OPERATINS table that match the specified arbitrary SQL statement
	 */
	public DoctorHasOperatins[] findByDynamicWhere(String sql, Object[] sqlParams) throws DoctorHasOperatinsDaoException;
}
